This invention relates generally to optical pointing devices and the compensation or conversion of the detected motion vectors when the sensor is displaced from an ideal location. More particularly, the invention provides a method for compensating or converting detected motion vectors detected by an optical motion sensor which is displaced from an ideal location into motion vectors which would be detected if the sensor were in the ideal location.
Optical pointing devices typically include an optical motion sensor to detect motion by identifying a pattern on a reading surface and monitoring the relative movement of the pattern. One particular type of optical pointing device is an optical trackball which comprises a housing with a ball having a pattern that presents the reading surface, and an optical sensor. When the ball is manipulated by a user, the sensor detects motion of the ball by monitoring the movement of the pattern and outputs a signal to a controller to translate the movement of the ball by the user to the on-screen movement of a cursor or pointer. The device will enable movement of the cursor or pointer in a manner that the user expects due to the user""s manipulation of the ball. In this manner, the movement of the on-screen cursor of a computing device is linked to the movement or rotation of the ball which is supported in the stationary housing.
In conventional optical pointing devices, the sensor is located directly opposite the point of user actuation. For typical optical trackballs, the ball is placed on the top of the housing or along a side of the housing for manipulation by a user""s finger or thumb. Wherever the ball is placed, the sensor must be placed in a location which is diametrically opposed to the point of actuation. Since the balls are generally placed in sockets which expose a portion of the spherical surface, regardless of the actual orientation of the ball in the housing, the area furthest from the socket outline or the xe2x80x9ctopxe2x80x9d area of the exposed spherical surface is generally the point of actuation. If the ball is manipulated from the top of a trackball housing, then the sensor must be below the ball. If the ball is manipulated from a side of the housing, then the sensor must be in diametrically opposed relation to the xe2x80x9ctopxe2x80x9d of the ball. This diametrically opposed position is referred to as the ideal location of the sensor because no transformation calculations need be performed as the sensor detects the actual user motion vectors. The detected signals can be input into the controller to directly correlate into corresponding movements of the on-screen cursor.
A drawback of the conventional optical devices is that the optics or the lens and the electronics including the sensor are extremely sensitive to dust, dirt, liquid spills and other contaminants. Positioning the sensor at the ideal location makes it more susceptible to contaminants since the sensor is usually placed below the ball, and contaminants can fall down easily into the ball support and accumulate on the sensor.
Another drawback of the conventional optical devices is that the requirement of placing the sensor in the ideal location limits the design of the devices. In optical trackballs, ergonomic optimization and housing design may be limited due to the space and positioning constraints posed by the ideal location arrangement of the sensor. The concept of the ideal location of the sensor and its limitations is applicable to other optical pointing devices such as optical computer mice.
To overcome the problems of the conventional optical pointing devices, the present invention applies a transformation function to the signals detected by a sensor which is placed arbitrarily away from the ideal location. The received signals are compensated or converted to signals which would result if the sensor were in the ideal location in order to link the movement of the on-screen cursor to the movement of the ball of the optical trackball. In addition to solving space constraint issues in the hardware, this invention enables degrees of design freedom not possible with conventional devices.
The main drawbacks of conventional optical trackballs are overcome by positioning the sensor away from the ideal location. Since the ideal location many times coincides with a position where contaminants tend to accumulate, the present invention avoids the problems brought about by contaminants by positioning the sensor and supporting optics away from ideal location. Secondly, removing the requirement of sensor location enables optimization of ergonomic and industrial design considerations.
The present invention provides a compensation method which enables movement of the on-screen cursor that corresponds to a user""s perception of the movement of the ball that he/she has manipulated. The actual location of the sensor in the device can be at any necessary location relative to the other components of the device within the housing, and the necessary transformation functions can be calculated and applied to the signals.
The compensation or conversion method enables the placement of the sensor at a location displaced from the ideal location while still producing output signals to a controller which are identical to those that would be produced if the sensor was at the ideal location. Broadly the compensation or conversion method is a transformation which simulates the sensor being disposed at the ideal location regardless of where it is actually placed. This is done by defining a user vector space, a sensor vector space and a reported vector space. The actuation of the ball occurs in the user vector space which corresponds to a detected movement in the sensor vector space. The motion detected in the sensor vector space is transformed to movement in the reported vector space which simulates the movement of the ball as if the sensor were located in the ideal location.
The present invention applies linear mappings or transformations which convert one vector space into another. A series of three non-cumulative transformations convert the motion vectors detected by the sensor in any arbitrary location into a set of motion vectors that the sensor would have detected had it been placed at the ideal location. The vector space transformations have been designed to allow for an uncomplicated measurement of the dimensions of the transformations from a computer-aided design software used to generate a mechanical model of the system. This readily enables generation of appropriate transformations for any design completed on the CAD system. Furthermore, the invention allows for the implementation of the mathematical calculations in a relative inexpensive, non-floating point microcontroller that has an instruction set which is not necessarily geared for complex mathematical computations. The method devised by the invention provides optimized accuracy given the constraints of microcontroller ROM sizes and mathematical capability.